W ramach niniejszego projektu przeprowadzona zostanie eksploracyjna analiza danych (EDA) dotycząca sklepu rowerowego. Celem analizy jest zrozumienie charakterystyk nabywców rowerów oraz identyfikacja czynników, które mogą wpływać na decyzję o zakupie roweru. Dostępny zestaw danych obejmuje informacje o 1000 klientach, w tym szczegółowe cechy demograficzne i behawioralne, a także kategoryczną zmienną wyjściową informującą, czy dana osoba dokonała zakupu roweru. Ponieważ dane zawierają brakujące wartości (NA), konieczne będzie ich odpowiednie przetworzenie, co stanowi istotny element procesu analizy danych.
W ramach projektu zostaną wykonane następujące kroki:
Data Cleansing, Wrangling
Wizualizację Danych
Analizę Opisową
Wnioskowanie (testy statystyczne)
Podsumowanie i wnioski końcowe
Opis zmiennych: - ID – unikalny identyfikator nabywcy
Marital Status – status cywilny (np. „Married”/„Single”)
Gender – płeć (np. „Male”/„Female”)
Income – dochód
Children – liczba dzieci
Education – poziom wykształcenia (np. „Bachelors”, „Partial High School”)
Occupation – zawód (np. „Clerical”, „Professional”)
Home Owner – posiadanie domu (tak/nie)
Cars – liczba posiadanych samochodów
Commute Distance – odległość do pracy (np. „0-1 Miles”, „5-10 Miles”)
Region – region geograficzny (np. „Europe”, „Pacific”, „North America”)
Age – wiek
Purchased Bike – zakup roweru (tak/nie) – zmienna wyjściowa
| ID | Marital Status | Gender | Income | Children | Education | Occupation | Home Owner | Cars | Commute Distance | Region | Age | Purchased Bike |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12496 | Married | Female | 40000 | 1 | Bachelors | Skilled Manual | Yes | 0 | 0-1 Miles | Europe | 42 | No |
| 24107 | Married | Male | 30000 | 3 | Partial College | Clerical | Yes | 1 | 0-1 Miles | Europe | 43 | No |
| 14177 | Married | Male | 80000 | 5 | Partial College | Professional | No | 2 | 2-5 Miles | Europe | 60 | No |
| 24381 | Single | NA | 70000 | 0 | Bachelors | Professional | Yes | 1 | 5-10 Miles | Pacific | 41 | Yes |
| 25597 | Single | Male | 30000 | 0 | Bachelors | Clerical | No | 0 | 0-1 Miles | Europe | 36 | Yes |
| 13507 | Married | Female | 10000 | 2 | Partial College | Manual | Yes | 0 | 1-2 Miles | Europe | 50 | No |
| 27974 | Single | Male | 160000 | 2 | High School | Management | NA | 4 | 0-1 Miles | Pacific | 33 | Yes |
| 19364 | Married | Male | 40000 | 1 | Bachelors | Skilled Manual | Yes | 0 | 0-1 Miles | Europe | 43 | Yes |
| 22155 | NA | Male | 20000 | 2 | Partial High School | Clerical | Yes | 2 | 5-10 Miles | Pacific | 58 | No |
| 19280 | Married | Male | NA | 2 | Partial College | Manual | Yes | 1 | 0-1 Miles | Europe | NA | Yes |
Czyszczenie danych to proces usuwania, poprawiania lub imputacji brakujących, błędnych i niezgodnych wartości w zbiorze danych. Jest kluczowe dla zapewnienia jakości analizy, ponieważ błędne lub niepełne dane mogą prowadzić do fałszywych wniosków.
## Ilość brakujących wartości: 53
Education,
Occupation, Commute_Distance,
Region, Home_Owner, Income,
Marital_Status, itp.Wykres przedstawia rozkład danych w relacji między dochodem (oś X) a wiekiem (oś Y), z uwzględnieniem statusu kompletności danych (“Obecne” lub “Brakujące”). Dane zostały podzielone na trzy regiony: - Europa - Ameryka Północna - Pacyfik
Kolor zielony oznacza dane obecne, natomiast kolor pomarańczowy wskazuje na dane brakujące.
1. Brakujące dane w podziale na poziom wykształcenia W pierwszej
analizie dane zostały podzielone według poziomu wykształcenia, a
następnie przeanalizowano rozkład brakujących wartości w różnych
kategoriach. Wyniki wskazują, że:
Najwięcej brakujących wartości odnotowano w zmiennych Age (Wiek), Children (Dzieci) oraz Cars (Samochody). Szczególnie wysokie braki dotyczą grupy Partial High School oraz Graduate Degree, gdzie niektóre zmienne osiągają poziom braków przekraczający 2,5% obserwacji. Braki w zmiennych takich jak Income (Dochód) oraz Marital Status (Stan cywilny) są bardziej rozproszone, lecz zauważalne w kilku grupach wykształcenia.
2.Brakujące dane w podziale na regiony W drugiej analizie dane zostały podzielone według regionów (Europe, North America, Pacific). Obserwacje wskazują na następujące wnioski:
Najwięcej braków odnotowano w kategorii Income (Dochód) w regionie Pacific, gdzie poziom braków jest najwyższy (powyżej 2,5%). Znaczące luki występują także w kategoriach Gender (Płeć) oraz Cars (Samochody) w Europie, co sugeruje potencjalne błędy w zbieraniu danych w tym regionie.
Braki w pozostałych kategoriach, takich jak Marital Status (Stan cywilny) czy Commute Distance (Dystans dojazdu), są mniej istotne, jednak nadal widoczne w różnych regionach.
Najwięcej brakujących danych dotyczy osób, dla których nie określono płci (NA). Szczególnie duże luki występują w kategoriach Age (Wiek), Children (Dzieci) oraz Cars (Samochody), gdzie brakujące wartości osiągają poziom powyżej 7,5%. W grupach Female i Male braki danych są znacznie mniejsze, ale widoczne są w zmiennych Marital Status oraz Income. Możliwe, że brak określenia płci wiąże się z problemami w rejestracji danych lub ich późniejszym przetwarzaniu, co wymaga dalszej weryfikacji.
Braki danych są szczególnie widoczne w zmiennych związanych z wiekem, dziećmi oraz dochodem, co może wpłynąć na jakość przyszłych analiz i prognoz. Warto zwrócić uwagę na grupę osób bez określonej płci (NA), gdyż w tej kategorii braki są znacznie większe niż w pozostałych grupach.
Region Pacific wyróżnia się pod względem brakujących wartości w dochodach, co może wskazywać na trudności w zbieraniu tych danych w tym obszarze. W dalszych krokach zaleca się weryfikację źródeł brakujących danych oraz ewentualne zastosowanie metod imputacji, aby poprawić kompletność zbioru danych.
## W naszym pliku nie ma już braków danych
## [1] "ID" "Marital.Status" "Gender" "Income"
## [5] "Children" "Education" "Occupation" "Home.Owner"
## [9] "Cars" "Commute.Distance" "Region" "Age"
## [13] "Purchased.Bike"
##
## Data model:
## dat1 : Commute.Distance %in% c('0-1 Miles', '1-2 Miles', '10+ Miles', '2-5 Miles', '5-10 Miles')
## dat2 : Education %in% c('Bachelors', 'Graduate Degree', 'High School', 'Partial College', 'Partial High School')
## dat3 : Gender %in% c('Female', 'Male')
## dat4 : Home.Owner %in% c('No', 'Yes')
## dat5 : Marital.Status %in% c('Married', 'Single')
## dat6 : Occupation %in% c('Clerical', 'Management', 'Manual', 'Professional', 'Skilled Manual')
## dat7 : Purchased.Bike %in% c('No', 'Yes')
## dat8 : Region %in% c('Europe', 'North America', 'Pacific')
##
## Edit set:
## num1 : 0 < ID
## num2 : 0 < Income
## num3 : 0 <= Children
## num4 : 0 <= Cars
## num5 : 0 < Age
## num6 : Age <= 120
## NULL
| Podsumowanie |
|---|
| Wszystkie reguły zostały spełnione. Brak błędów. |
Wykres ilustruje zależność pomiędzy odległością od miejsca pracy (oś X, przedstawiona w milach) a liczbą osób, które zdecydowały się na zakup roweru (oś Y).
Wykres przedstawia liczbę zakupów rowerów w podziale na typ zawodu
(oś X) oraz płeć klientów. Na osi poziomej (X) uwzględniono kategorie
zawodów: Clerical, Management,
Manual, Professional, Skilled
Manual. Oś pionowa (Y) reprezentuje liczbę osób, które zakupiły
rower.
- Różowe słupki: reprezentują kobiety.
- Niebieskie słupki: reprezentują mężczyzn.
#Utworzenie histogramu - zależność między wiekiem, a zakupem roweru
library(ggplot2)
library(dplyr)
wykres_4 <- ggplot(zbior, aes(age)) +
geom_histogram(binwidth = 5, fill = "red", color = "black") +
labs(title = "Zakup raweru w zależności do wieku", x = "Wiek", y = "Zakup roweru") +
theme_minimal()
wykres_4
##Utworzenie wykresu słupkowego - zależność między regionem, a zakupem roweru
library(ggplot2)
library(dplyr)
wykres_5 <- ggplot(zbior, aes(region)) +
geom_bar(fill = "pink", color = "lightgreen") +
labs(title = "Zakup raweru w zależności do regionu zamieszkania", x = "Region", y = "Zakup roweru") +
theme_minimal()
wykres_5
#Utworzenie boxplota - zakup roweru względem zarobków
library(ggplot2)
library(dplyr)
wykres_6 <- ggplot(zbior, aes(x = purchased_bike, y = income)) +
geom_boxplot(fill = "lightblue", color = "darkblue") +
labs(title = "Zakup roweru z zleżności od zarobków",
x = "Zakup roweru",
y = "Zarobki") +
theme_minimal()
wykres_6
#Utworzenie boxplota - zakup roweru względem zarobków z odstającymi wartościami
wykres_7 <- ggplot(zbior, aes(x = purchased_bike, y = income)) +
geom_boxplot(outlier.color = "red", outlier.shape = 8) +
labs(title = "Zakup roweru z zleżności od zarobków z odstającymi wartościami",
x = "Zakup roweru",
y = "Zarobki") +
theme_minimal()
wykres_7